/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package hj4;

/**
 *
 * ALGORITMOS Y ESTRUCTURA DE DATOS
 * SECCION 10
 * CATEDRATICO ING. ROBLES FLORES
 * HOJA DE TRABAJO 4
 *  
 * YUCELY BEB     12537
 * MARCOS LOPEZ    12519
 * VICTOR FUENTES 12298
 */
import java.util.*;
public class Factory {
    int a=0;
    StringBuffer error=new StringBuffer();  
    //variables de PrintSpooler
    PrintSpooler singleton;
    
    
    public Factory(int i){
        a=i;
    }        
    public Resultado getResultado(StringBuffer in){
        try{
            if(a==1){
                singleton=new PrintSpooler();
                singleton.finalizar();//se llama a este metodo para reseter condiciones de singleton
                return new Postfix(in);
                
            }else if(a==2){
                singleton=new PrintSpooler();
                singleton.finalizar();//se llama a este metodo para reseter condiciones de singleton
                return new PostfixArray(in);
            }else if(a==3){
                singleton=new PrintSpooler();
                singleton.finalizar();//se llama a este metodo para reseter condiciones de singleton
                return new PostfixSimEnc(in);
            }else if(a==4){
                singleton=new PrintSpooler();
                singleton.finalizar();//se llama a este metodo para reseter condiciones de singleton
                return new PostfixEncDoble(in);
            }else if(a==5){
                singleton=new PrintSpooler();
                singleton.finalizar();//se llama a este metodo para reseter condiciones de singleton
                return new PostfixCir(in);
            }else{
                singleton=new PrintSpooler();
                singleton.finalizar();//se llama a este metodo para reseter condiciones de singleton
                return new Postfix(error); 
            }
            
        }catch(SingletonException k){
            System.out.println(k.getMessage());
            return new Postfix(error);
        }
        
        
       
        
    }
    
    
    
}
